﻿using System;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace SpaceInvaders001
{
    class Tiro
    {
        private Texture2D imagem;
        
        private int speedTiro = 4;
        private int accumulatedMillisecondsTiro;
        private int velocidadeDeRespostaTiro = 20;
        public Vector2 posicao;
        public float radius = 1;
        public bool naTela = true;
        public Rectangle rect;


        public Tiro(Texture2D imagem, Vector2 posicao)
        {
            this.imagem = imagem;
            this.posicao = posicao;
            this.rect = new Rectangle((int)this.posicao.X, (int)this.posicao.Y, this.imagem.Width, this.imagem.Height);

        }

        public Tiro(Texture2D imagem, Vector2 posicao, int speedTiro)
        {
            this.imagem = imagem;
            this.posicao = posicao;
            this.speedTiro = speedTiro;
            this.rect = new Rectangle((int)this.posicao.X, (int)this.posicao.Y, this.imagem.Width, this.imagem.Height);

        }

        public Tiro(Texture2D imagem, Vector2 posicao, int speedTiro, float radius)
        {
            this.imagem = imagem;
            this.posicao = posicao;
            this.speedTiro = speedTiro;
            this.radius = radius;
            this.rect = new Rectangle((int)this.posicao.X, (int)this.posicao.Y, this.imagem.Width, this.imagem.Height);

        }

        public void update(GameTime gameTime)
        {
            this.accumulatedMillisecondsTiro += gameTime.ElapsedGameTime.Milliseconds;
            while (this.accumulatedMillisecondsTiro > velocidadeDeRespostaTiro)
            {
                this.accumulatedMillisecondsTiro -= velocidadeDeRespostaTiro;
                this.posicao.Y -= speedTiro;
                this.rect = new Rectangle((int)this.posicao.X, (int)this.posicao.Y, this.imagem.Width, this.imagem.Height);
                if (this.posicao.Y < -this.imagem.Height || this.posicao.Y>1000)
                {
                    this.naTela = false;
                }
            }
        }

        public void draw(GameTime gameTime, SpriteBatch spriteBatch)
        {
            spriteBatch.Draw(this.imagem, this.posicao,
                                       new Rectangle(0, 0, this.imagem.Bounds.Width,
                                       this.imagem.Bounds.Height),
                                       Color.White, 0f, Vector2.Zero,
                                       1f,
                                       SpriteEffects.None,
                                       0.1f
                                       );
        }
    }
}
